/**
 * 作者：吴超
 * 邮箱：wuchao_19931120@163.com
 * 时间：2021-10-11
 * 描述：给定一个整数数组 nums ，找到一个具有最大和的连续子数组（子数组最少包含一个元素），返回其最大和。
 */

public class MaxSubArray {


    public  static int subArraySum(int[] nums){

        int sum = 0;
        int result = nums[0];
        for (int num : nums) {

            if (sum > 0) {
                sum += num;
            }else{
                sum = num;
            }
            result = Math.max(result, sum);

        }
        return result;
    }


    /**
     *  @author 吴超
     *  @time 2021/10/13 19:21
     *  TODO
     */
    public static void main(String[] args) {
        int[] nums = {1,2,3,0,-1,-20,4,5,6,0,8,-9};
        System.out.println(subArraySum(nums));
    }

}
